A firmware of a solid-state drive (SSD) is typically upgraded (or updated) by host software through a device driver of the SSD running on a host computer. If a new SSD is inserted into an enclosure of a server (or a switch) or a new SSD firmware is available, the host software checks the version of the current SSD firmware and, if necessary, performs an upgrade of the SSD firmware to replace the current SSD firmware.
Non-volatile memory (NVM) express over fabrics (NVMeoF) defines a common architecture that supports a NVM express (NVMe) block storage protocol over a wide range of storage networking fabrics such as Ethernet, Fibre Channel, InfiniBand, and other network fabrics. For an NVMeoF-based system, an X86-based central processing unit (CPU) on a motherboard is no longer required to move data between an initiator (e.g., host software) and a target device (i.e., an NVMeoF device) because the target device is capable of moving data by itself. To minimize the system cost while improving security, a less expensive embedded switch CPU may be used to perform control plane functions inside the enclosure of the NVMeoF-based system. As such, there is no direct communication between the switch CPU for the control plane and NVMeoF devices (e.g., Ethernet SSDs or eSSDs) for the data plane within the NVMeoF-based system.
A baseboard management controller (BMC) is a low-power controller embedded in a server (or a switch) and used to monitor various operating conditions of the chassis and control peripheral devices. For example, the BMC connects to one or more chassis sensors, reads environmental and operating conditions from the chassis sensors, and can control the attached NVMeoF devices through a local bus such as a peripheral component interconnect express (PCIe) interface and/or a universal serial bus (USB).
Typically, a system is required to undergo a significant downtime to upgrade the SSD firmware for the attached SSDs. The system downtime may be incrementally increased as the number of attached SSDs increases. The system downtime may be further prolonged when the SSD firmware upgrade is performed across a low-speed bus such as an NVMe management interface bus. Further, an SSD firmware upgrade over a data plane of the Ethernet is not desirable because data transferred over the Ethernet is on a data-plane that can be easily compromised.